package org.example.encrypt.annotations;

import java.lang.annotation.*;

/**
 * 用于修饰类的字段
 *
 * @Author WeiBing
 * @Create 2024/8/12 18:21
 */
@Documented
@Inherited
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface CryptField {

    /**
     * 默认字段需要加密
     */
    boolean encrypt() default true;
    /**
     * 默认字段需要解密
     */
    boolean decrypt() default true;
    /**
     * 字段为对象时有用，默认当前对象不需要进行加解密
     */
    boolean subObject() default false;
    /**
     * 加密字段的类型（目前兼容2种）
     */
    Class<?> fieldType();
}
